iT邦幫忙

2022 iThome 鐵人賽

DAY 2
0
Security

我逆向你逆向我的逆向工程膩系列 第 2

Dx02 - 初探逆向工程

  • 分享至 

  • xImage
  •  

甚麼是逆向工程

逆向工程 ( Reverse Engineering ) 是透過成品來分析出它的功能、行為與結構,掌握他的原理。而代碼逆向工程 ( Reverse Code Engineering ) 則是應用在代碼上。事實上,目前這些術語的使用還沒有比較統一的規範,像是 RE 、 RCE 、逆向工程、逆向分析等;所以我們在這邊就統一使用 RE 吧。

在 RE 中大致可以分為兩種方法 : 靜態分析與動態分析。

  • 靜態分析
    這種方法是透過靜態檔案本身,觀察他的文件特徵。像是大小、metadata、文件結構等。
    下圖是使用反組譯器 ( Disassembler ) PE-bear 來分析程式的內部代碼。

https://ithelp.ithome.com.tw/upload/images/20220916/20135675X6C4y3fbJL.png

  • 動態分析
    執行程式並觀察他的進程、暫存器、網路流等在執行時可能會改變的數值來觀察程式的行為。透過一行一行執行的指令,來看看目標程式會帶給我們甚麼驚喜。
    下圖是使用反編譯器 (Debugger) x64dbg 來分析執行中的程式

https://ithelp.ithome.com.tw/upload/images/20220916/20135675GUZzSdzbRs.png

初出茅廬

既然在上面看到這兩個方法,那我們來安裝這些工具來準備分析軟體吧 !

範例程式

https://github.com/Dinlon5566/IT_Reverse_Engineering/blob/main/Dx02/HelloWorld_x64.exe

利用 VC++ x64 寫一份會呼叫 windows API 來顯示視窗的執行檔 ( .exe )。

https://ithelp.ithome.com.tw/upload/images/20220916/20135675DOpKwGhWGs.png

靜態分析 : PE-Bear

https://github.com/hasherezade/pe-bear-releases/releases

由於 exe 檔案是屬於 PE 檔 ( 這部分之後會提到 ) ,所以可以使用 PE 觀察工具來分析程式的結構。

https://ithelp.ithome.com.tw/upload/images/20220916/20135675dJG9PGnfae.png

  1. 開啟 [ File ]
  2. [ load PE ]
  3. 選取目標檔案
  4. 開啟檔案

https://ithelp.ithome.com.tw/upload/images/20220916/20135675QaxSRPy6F2.png

開啟後可以在這個視窗看到許多分區,其中 :

  1. 結構目錄 : 可以觀察程式的結構,快速選取到代碼位置
  2. 靜態代碼 : 程式在文件時的 binary 資料,右方為轉化成 ascii 可觀察是否有字串資料存在,可以去 .data 觀察看看。
  3. 分析 : 可以查看不同區塊所代表的意思, PE 解析的部分將來會解說。

透過靜態分析可以在不執行程式得情況下來得到很多資訊,是執行動態分析時的重要參考資料。

動態分析 : x64dbg

https://x64dbg.com/

這個工具將來會很常用到,特點是操作起來挺直觀的,而且操作與 ollydbg 幾乎一樣。但是安裝起來沒有那麼直觀。先到 release資料夾開啟 [ x96dbg.exe ] 安裝好後再開一次,點選 x64 ( 或 x32 )就可以了。雖然有更好的工具 ( IDA等 ) 可以選擇,但是要理解概念的話我覺得利用這個工具會比較好。

https://ithelp.ithome.com.tw/upload/images/20220916/20135675554JkQhNh0.png

這些窗口中 :

  1. 代碼 : 指令還有一些標籤,註釋。
  2. 數據 : 可以以 HEX / ASCII / Unicode 看內存位置的資料,也可以用 ctrl+E 來編輯資料
  3. 暫存器 : 運行指令時暫存器的值,可以修改特定的暫存器。
  4. Stack : ESP 指向的 stack 內存,也可以修改。

下一篇將會使用 x64dbg 來進行分析執行檔,並熟悉軟體操作與檔案概念。


上一篇
Dx01 - 開賽導言
下一篇
Dx03 - “Hello World!”
系列文
我逆向你逆向我的逆向工程膩31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言